/**
 * AST节点类型枚举
ROOT = 0,                // 根节点
ELEMENT = 1,             // 元素节点
TEXT = 2,                // 文本节点
COMMENT = 3,             // 注释节点
SIMPLE_EXPRESSION = 4,   // 简单表达式
INTERPOLATION = 5,       // 插值表达式
ATTRIBUTE = 6,           // 属性节点
DIRECTIVE = 7,           // 指令节点
COMPOUND_EXPRESSION = 8, // 复合表达式
IF = 9,                  // 条件语句
IF_BRANCH = 10,          // 条件分支
FOR = 11,                // 循环语句
TEXT_CALL = 12,          // 文本调用
VNODE_CALL = 13,         // 虚拟节点调用
JS_CALL_EXPRESSION = 14, // JS调用表达式
JS_OBJECT_EXPRESSION = 15, // JS对象表达式
JS_PROPERTY = 16,        // JS属性
JS_ARRAY_EXPRESSION = 17, // JS数组表达式
JS_FUNCTION_EXPRESSION = 18, // JS函数表达式
JS_CONDITIONAL_EXPRESSION = 19, // JS条件表达式
JS_CACHE_EXPRESSION = 20, // JS缓存表达式
JS_BLOCK_STATEMENT = 21,  // JS块语句
JS_TEMPLATE_LITERAL = 22, // JS模板字面量
JS_IF_STATEMENT = 23,     // JS条件语句
JS_ASSIGNMENT_EXPRESSION = 24, // JS赋值表达式
JS_SEQUENCE_EXPRESSION = 25, // JS序列表达式
JS_RETURN_STATEMENT = 26  // JS返回语句
 */

// 获取AST节点列表
function getAstNodeList(ast) {
  const astNodeList = [];
  astNodeList.push(ast)
  if (Array.isArray(ast.children)) {
    ast.children.forEach((child) => {
      getAstNodeList(child);
    })
  }
  return astNodeList;
}

function changeNode(list) {
  list.forEach((node) => {
    if (node.type === 2) {
      console.log(node)
    }
  })
}